package com.wicket.okrbff.web.contorller;

import cn.hutool.core.bean.BeanUtil;
import com.wicket.okrbff.biz.service.DashboardTargetContentService;
import com.wicket.okrbff.biz.service.dto.req.*;
import com.wicket.okrbff.biz.service.dto.res.*;
import com.wicket.okrbff.common.ro.OkrResult;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import java.util.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.wicket.okrcalc.integration.FwCalcDashboardTargetContentClient;
import com.wicket.okrcalc.integration.dto.QueryMemberObjectiveRankingListRespDto;
import com.wicket.okrcalc.integration.dto.QueryMemberObjectiveRankingListReqDto;
import com.wicket.okrapp.integration.FwAppDashboardTargetContentClient;
import com.wicket.okrapp.integration.dto.BatchQueryUserInfoByTargetCycleIdComRespDto;
import com.wicket.okrapp.integration.dto.BatchQueryUserInfoByTargetCycleIdComReqDto;
import java.util.stream.Collectors;
import cn.hutool.core.collection.CollectionUtil;
import com.wicket.okrbff.common.exception.Assert;
import com.wicket.okrbff.common.util.CommonFunctionHelper;
import com.wicket.okrapp.integration.dto.QueryTargetSpectacularCycleInfoDetailRespDto;
import com.wicket.okrapp.integration.dto.QueryTargetSpectacularCycleInfoDetailReqDto;
import com.wicket.okrapp.integration.dto.QueryKeyFocusListComRespDto;
import com.wicket.okrapp.integration.dto.QueryKeyFocusListComReqDto;
import com.wicket.okrbff.biz.service.dto.common.BffKeyFocusDto;
import com.wicket.okrbff.biz.service.dto.common.BffCopywritingDto;
import com.wicket.okrapp.integration.dto.QueryReportTaskDetailsListRespDto;
import com.wicket.okrapp.integration.dto.QueryReportTaskDetailsListReqDto;
import com.wicket.okrbff.biz.service.dto.common.BffReportingTaskDto;
import com.wicket.okrapp.integration.dto.DeleteKeyFocusComRespDto;
import com.wicket.okrapp.integration.dto.DeleteKeyFocusComReqDto;
import com.wicket.okrapp.integration.dto.AddKeyFocusComRespDto;
import com.wicket.okrapp.integration.dto.AddKeyFocusComReqDto;
import com.wicket.okrapp.integration.FwAppVirtualOrgClient;
import com.wicket.okrapp.integration.dto.BatchQueryVirtualOrgMemberComBorderRespDto;
import com.wicket.okrapp.integration.dto.BatchQueryVirtualOrgMemberComBorderReqDto;
import com.wicket.okrapp.integration.dto.BatchUpdateKeyFocusComRespDto;
import com.wicket.okrapp.integration.dto.BatchUpdateKeyFocusComReqDto;
import com.wicket.okrapp.integration.dto.KeyFocusDto;
import com.wicket.okrframework.integration.FwBaseOrgClient;
import com.wicket.okrframework.integration.dto.BatchQueryDeptComRespDto;
import com.wicket.okrframework.integration.dto.BatchQueryDeptComReqDto;
import com.wicket.okrframework.integration.FwBaseInductionRecordClient;
import com.wicket.okrframework.integration.dto.BatchQueryInductionRecordListComRespDto;
import com.wicket.okrframework.integration.dto.BatchQueryInductionRecordListComReqDto;

/**
 * @author ：
 * @date ：
 *
 *
 * @version 1.0
 */
@Api(value = "DashboardTargetContent", tags = { "DashboardTargetContent" })
@RestController
// @RequestMapping("/oms/dashboardTargetContent/")
public class DashboardTargetContentController {

  @Autowired
  DashboardTargetContentService dashboardTargetContentService;
/**
   * B4查询个人指标排行列表
   * gen by moon at 4/3/2024, 12:01:59 AM
   */
    @PostMapping("/oms/dashboardTargetContent/queryMemberObjectiveRankingList")
    @ApiOperation(value = "B4查询个人指标排行列表", response = OkrResult.class)
    public OkrResult<BffQueryMemberObjectiveRankingListRespDto> queryMemberObjectiveRankingList(@RequestBody(required=false) @Validated BffQueryMemberObjectiveRankingListReqDto reqDTO){
        return OkrResult.success(dashboardTargetContentService.queryMemberObjectiveRankingList(reqDTO));
    }
/**
   * B3查询目标看板周期信息
   * gen by moon at 4/7/2024, 3:35:53 PM
   */
    @PostMapping("/oms/dashboardTargetContent/queryTargetSpectacularCycleInfoDetail")
    @ApiOperation(value = "B3查询目标看板周期信息", response = OkrResult.class)
    public OkrResult<BffQueryTargetSpectacularCycleInfoDetailRespDto> queryTargetSpectacularCycleInfoDetail(@RequestBody(required=false) @Validated BffQueryTargetSpectacularCycleInfoDetailReqDto reqDTO){
        return OkrResult.success(dashboardTargetContentService.queryTargetSpectacularCycleInfoDetail(reqDTO));
    }
/**
   * B查询规划网盘重点关注列表
   * gen by moon at 5/13/2024, 2:55:55 AM
   */
    @PostMapping("/oms/dashboardTargetContent/queryKeyFocusList")
    @ApiOperation(value = "B查询规划网盘重点关注列表", response = OkrResult.class)
    public OkrResult<BffQueryKeyFocusListRespDto> queryKeyFocusList(@RequestBody(required=false) @Validated BffQueryKeyFocusListReqDto reqDTO){
        return OkrResult.success(dashboardTargetContentService.queryKeyFocusList(reqDTO));
    }
/**
   * B3查询汇报任务明细列表
   * gen by moon at 7/4/2024, 1:00:39 AM
   */
    @PostMapping("/oms/dashboardTargetContent/queryReportTaskDetailsList")
    @ApiOperation(value = "B3查询汇报任务明细列表", response = OkrResult.class)
    public OkrResult<BffQueryReportTaskDetailsListRespDto> queryReportTaskDetailsList(@RequestBody(required=false) @Validated BffQueryReportTaskDetailsListReqDto reqDTO){
        return OkrResult.success(dashboardTargetContentService.queryReportTaskDetailsList(reqDTO));
    }
/**
   * B3删除重点关注
   * gen by moon at 7/26/2024, 2:18:48 PM
   */
    @PostMapping("/oms/dashboardTargetContent/deleteKeyFocus")
    @ApiOperation(value = "B3删除重点关注", response = OkrResult.class)
    public OkrResult<BffDeleteKeyFocusRespDto> deleteKeyFocus(@RequestBody(required=false) @Validated BffDeleteKeyFocusReqDto reqDTO){
        return OkrResult.success(dashboardTargetContentService.deleteKeyFocus(reqDTO));
    }
/**
   * B3新增重点关注
   * gen by moon at 7/26/2024, 2:18:55 PM
   */
    @PostMapping("/oms/dashboardTargetContent/addKeyFocus")
    @ApiOperation(value = "B3新增重点关注", response = OkrResult.class)
    public OkrResult<BffAddKeyFocusRespDto> addKeyFocus(@RequestBody(required=false) @Validated BffAddKeyFocusReqDto reqDTO){
        return OkrResult.success(dashboardTargetContentService.addKeyFocus(reqDTO));
    }
/**
   * B3查询重点关注列表
   * gen by moon at 7/26/2024, 2:19:05 PM
   */
    @PostMapping("/oms/dashboardTargetContent/queryKeyFocusBusinessProcessList")
    @ApiOperation(value = "B3查询重点关注列表", response = OkrResult.class)
    public OkrResult<BffQueryKeyFocusBusinessProcessListRespDto> queryKeyFocusBusinessProcessList(@RequestBody(required=false) @Validated BffQueryKeyFocusBusinessProcessListReqDto reqDTO){
        return OkrResult.success(dashboardTargetContentService.queryKeyFocusBusinessProcessList(reqDTO));
    }
/**
   * B3批量设置重点关注排序
   * gen by moon at 8/6/2024, 7:52:14 PM
   */
    @PostMapping("/oms/dashboardTargetContent/batchSetKeyFocusOrderNumber")
    @ApiOperation(value = "B3批量设置重点关注排序", response = OkrResult.class)
    public OkrResult<BffBatchSetKeyFocusOrderNumberRespDto> batchSetKeyFocusOrderNumber(@RequestBody(required=false) @Validated BffBatchSetKeyFocusOrderNumberReqDto reqDTO){
        return OkrResult.success(dashboardTargetContentService.batchSetKeyFocusOrderNumber(reqDTO));
    }
}
